#pragma once

//WGLENGINE_DLL
#ifdef WGLENGINE_DLL
#define WGLENGINE_EXPORT __declspec(dllexport)
#else
#define WGLENGINE_EXPORT __declspec(dllimport)
#endif

#include "SceneNode.h"
#include <memory>

class WGLENGINE_EXPORT SceneGraph
{
public:
	SceneGraph(std::shared_ptr<SceneNode> root);
	~SceneGraph();

	std::weak_ptr<SceneNode> GetRoot();

	static std::weak_ptr<SceneGraph> GetDefaultSceneGraph();

private:
	std::shared_ptr<SceneNode> root;
	static std::shared_ptr<SceneGraph> defaultSceneGraph;
};